﻿// 5571. 反转字符串.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/5574/

给定 n
 个由小写字母构成的字符串。

你可以对其中的任意个字符串进行反转操作（例如将 abc 反转为 cba）。

不同的字符串的反转代价可能不同，具体来说反转第 i
 个字符串的代价为 ci
。

我们希望所有反转操作完成后，n
 个字符串能够符合字典序排列。

请你计算，为了达成这一目的所需的最小总代价。

输入格式
第一行包含整数 n
。

第二行包含 n
 个整数 c1,c2,…,cn
。

接下来 n
 行，每行包含一个给定字符串。

输出格式
如果可以达成目的，则输出所需的最小总代价，否则输出 -1。

数据范围
前 6
 个测试点满足 2≤n≤5
。
所有测试点满足 2≤n≤105
，0≤ci≤109
，所有给定字符串非空且总长度不超过 105
。

输入样例1：
2
1 2
ba
ac
输出样例1：
1
输入样例2：
3
1 3 1
aa
ba
ac
输出样例2：
1
输入样例3：
2
5 5
bbb
aaa
输出样例3：
-1
输入样例4：
2
3 3
aaa
aa
输出样例4：
-1
*/
int main()
{
    std::cout << "Hello World!\n";
}

 